package com.wyix.error;

/**
 * 基础业务异常（继承RuntimeException，非受检异常）
 *
 * @author wangdx
 * @since 2025/8/1
 */
public abstract class BaseBusinessException extends RuntimeException {
    private final String errorCode; // 业务错误码（如"ORDER_NOT_FOUND"）
    private final boolean retryable; // 是否可重试

    public BaseBusinessException(String message, String errorCode, boolean retryable, Throwable cause) {
        super(message, cause); // 保留异常链（文档4.2节）
        this.errorCode = errorCode;
        this.retryable = retryable;
    }

    // Getter方法
    public String getErrorCode() {
        return errorCode;
    }

    public boolean isRetryable() {
        return retryable;
    }
}
